package com.virtualperson.enums;

import lombok.Getter;

/**
 * 风格化生成错误码枚举
 */
@Getter
public enum StyleGenerationErrorCode {
    INVALID_URL("InvalidURL", "输入URL错误，请确保URL链接的正确性"),
    INVALID_IMAGE_RESOLUTION("InvalidImageResolution", "输入图像分辨率过大或过小"),
    INVALID_IMAGE_FORMAT("InvalidImageFormat", "输入图像格式无效"),
    UNKNOWN_ERROR("UnknownError", "未知错误");

    private final String code;
    private final String message;

    StyleGenerationErrorCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 根据错误码获取对应的枚举值
     * @param code 错误码
     * @return 对应的错误码枚举，如果未找到则返回UNKNOWN_ERROR
     */
    public static StyleGenerationErrorCode fromCode(String code) {
        if (code == null) {
            return UNKNOWN_ERROR;
        }
        
        for (StyleGenerationErrorCode errorCode : values()) {
            if (errorCode.getCode().equals(code)) {
                return errorCode;
            }
        }
        
        return UNKNOWN_ERROR;
    }

    /**
     * 获取完整的错误信息
     * @return 格式化的错误信息
     */
    public String getFullMessage() {
        return String.format("%s: %s", code, message);
    }
} 